package com.cheng.example.java.version.java8.chap05_defaultInter;

public class Test {


    /**
     * 01、断言接口
     */

//    public static void main(String[] args) {
//        Predicate<String> predicate = (s) -> s.length() > 0;
//
//        predicate.test("foo");              // true
//        predicate.negate().test("foo");     // false
//
//        Predicate<Boolean> nonNull = Objects::nonNull;
//        Predicate<Boolean> isNull = Objects::isNull;
//
//        Predicate<String> isEmpty = String::isEmpty;
//        Predicate<String> isNotEmpty = isEmpty.negate();
//    }


    /**
     * 02、Function 接口
     *
     * @param args
     */
//    public static void main(String[] args) {
//        Function<String, Integer> toInteger = Integer::valueOf;
//        Function<String, String> backToString = toInteger.andThen(String::valueOf);//暂时不知道这个方法啥意思
//        backToString.apply("123");     // "123"
//    }


    /**
     * 03、Supplier 接口
     * 供应商的意思
     * @param args
     */
//    public static void main(String[] args) {
//        Supplier<Person> personSupplier = Person::new;
//        personSupplier.get();// new Person
//    }


    /**
     * 04、Consumer 接口
     * 消费者接口
     * @param args
     */
//    public static void main(String[] args) {
//        Consumer<Person> greeter = (p) -> System.out.println("Hello, " + p.firstName);
//        greeter.accept(new Person("Luke", "Skywalker"));
//    }


    /**
     * 05、Comparator 接口
     * 消费者接口
     * @param args
     */
//    public static void main(String[] args) {
//        Comparator<Person> comparator = (p1, p2) -> p1.firstName.compareTo(p2.firstName);
//        Person p1 = new Person("John", "Doe");
//        Person p2 = new Person("Alice", "Wonderland");
//        comparator.compare(p1, p2);             // > 0
//        comparator.reversed().compare(p1, p2);  // < 0
//    }


    /**
     * 06、Optional 接口
     * 消费者接口
     * @param args
     */
//    public static void main(String[] args) {
//        Optional<String> optional = Optional.of("bam");
//        optional.isPresent();           // true ,是否存在
//        optional.get();                 // "bam"
//        optional.orElse("fallback");    // "bam"
//        optional.ifPresent((s) -> System.out.println(s.charAt(0)));     // "b"
//    }




    public static void main(String[] args) {


    }


}
